package com.xl.annotation;

import com.xl.constants.ExcelPropertyTypeConstants;

import java.lang.annotation.*;

/**
 * 这个注解要和ExcelProperty注解一起使用，使用ExcelProperty注解解析excel，使用ExcelPropertyCheck注解进行字段校验
 * 数据导入的时候是否对数据进行  非空 长度 格式检查
 */
@Target({ElementType.FIELD, ElementType.TYPE}) //作用位置，字段上和类上
@Retention(RetentionPolicy.RUNTIME) //运行时，可以使用反射API获取注解中的字段名
@Inherited //如果一个类使用了这个注解，他的子类是否继承这个注解
@Documented //让代码在javadoc文章中可见
public @interface ExcelPropertyCheck {

    //字段名
    public String propertyName() default "xxx";

    //是否进行非空检验默认不检查空
    public boolean checkBlank() default false;

    //非空检查失败报错信息
    public String blankMsg() default "数据不能为空";

    //是否进行长度检查
    public int checkLength() default -1;

    //长度检查失败报错信息
    public String lengthMsg() default "长度不符合要求";


    //格式类型，默认为字符串
    public String checkRegex() default ExcelPropertyTypeConstants.STRING_VALUE;

    //格式检查报错信息
    public String regexMsg() default "格式错误";


}
